クロスプラットフォーム対応したPowerShellをMac OS Xで試してみた
ども、大瀧です。
先日PowerShellのLinux対応とオープンソース化がアナウンスされました。
記事のタイトルはLinux対応なのですが、こっそりMac OS Xにも対応していたので、試してみた様子をレポートします。
動作確認した環境
- OS : OS X El Capitan
- PowerShell : バージョン v6.0.0-alpha.9
インストールと実行
現在はアルファ版で、GitHubにリポジトリがあります。ドキュメントに従い、バイナリをダウンロードしてインストールします。
$ sudo installer -pkg powershell-6.0.0-alpha.9.pkg -target / Password: installer: Package name is powershell-6.0.0-alpha.9 installer: Installing at base path / installer: The install was successful. $
これでOKです。/usr/local/bin/powershell
にシンボリックリンクが張られるので、いきなり実行できます。
$ powershell PowerShell Copyright (C) 2016 Microsoft Corporation. All rights reserved. PS /Users/ryuta>
普通に入力補完が効くので、Get-
コマンドレットの一覧を見てみましょう。
PowerShellのコア機能のコマンドレットに限られ、システム管理系コマンドレットはまだ無いようですね。PowerShellからOS Xのシステム設定を変更しようとは今のところ思っていないので(笑)、特に気にはなりませんでした。
あと、モジュールや実行ポリシーなど実行環境周りをチェック。
PS /Users/ryuta> Get-Module ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clear-Content, Clear-Item, Clear-ItemProperty...} Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...} Script 1.2 PSReadLine {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHan... PS /Users/ryuta> Get-ExecutionPolicy Unrestricted PS /Users/ryuta> Get-Host Name : ConsoleHost Version : 6.0.0 InstanceId : 08ce74f4-c0f3-4569-a74e-24b88df79fbd UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : ja-JP CurrentUICulture : ja-JP PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy DebuggerEnabled : True IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace PS /Users/ryuta>
普通に動く感じですね。
スクリプトファイルとしての実行
インタプリタとしてPowerShellを使うのであれば、シェルスクリプトと同じような感覚で使いたいものです。ということで、Bashから呼び出すスクリプトファイルを作成し、試してみます。
#!/usr/local/bin/powershell -File Write-Host 'test!!'
で、これに実行権を付けて実行してみます。
$ chmod +x test.ps1 $ ./test.ps1 test!! $
あっさり動きましたね。手軽にPowerShellを利用する方法として便利な気がします。
まとめ
クロスプラットフォームに対応したPowerShellのOS X版を試してみました。 皆さんの本命はLinux対応だと思いますが、個人的にはスクリプトをPowerShellで組んで手元のMacbookで実行するのもかなり便利かなと期待しています。 AWSのPowerShellクライアントであるAWS Tools for PowerShellもクロスプラットフォーム版PowerShellに対応予定らしいので、こちらも合わせてウォッチしたいと思います。